#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Autor: Josep Torrens Amer
# E-mail: toram74@gmail.com
#
# GNU GPL License, (C) 2007.
#
# Module: client
#
# Description: Modul base de dades
#
# Version: 0.0.1
#
# Created: 27-08-2007
#
# Modified:
#
import cobjecte
class client (ClasseObjecte):
    """
    Clase Client
    """

    def getNif(self):
        return self.__nif


    def getNom(self):
        return self.__nom


    def setNom(self, value):
        self.__nom = value


    def delNom(self):
        del self.__nom


    def getLlinatges(self):
        return self.__llinatges


    def setLlinatges(self, value):
        self.__llinatges = value


    def delLlinatges(self):
        del self.__llinatges


    def getDireccio1(self):
        return self.__direccio1


    def setDireccio1(self, value):
        self.__direccio1 = value


    def delDireccio1(self):
        del self.__direccio1


    def getDireccio2(self):
        return self.__direccio2


    def setDireccio2(self, value):
        self.__direccio2 = value


    def delDireccio2(self):
        del self.__direccio2


    def getPoblacio(self):
        return self.__poblacio


    def setPoblacio(self, value):
        self.__poblacio = value


    def delPoblacio(self):
        del self.__poblacio


    def getCodipostal(self):
        return self.__codipostal


    def setCodipostal(self, value):
        self.__codipostal = value


    def delCodipostal(self):
        del self.__codipostal


    def getTelefon(self):
        return self.__telefon


    def setTelefon(self, value):
        self.__telefon = value


    def delTelefon(self):
        del self.__telefon


    def getMobil(self):
        return self.__mobil


    def setMobil(self, value):
        self.__mobil = value


    def delMobil(self):
        del self.__mobil


    def getEmail(self):
        return self.__email


    def setEmail(self, value):
        self.__email = value


    def delEmail(self):
        del self.__email


    def getNotes(self):
        return self.__notes


    def setNotes(self, value):
        self.__notes = value


    def delNotes(self):
        del self.__notes


    def getPais(self):
        return self.__pais


    def setPais(self, value):
        self.__pais = value


    def delPais(self):
        del self.__pais


    def __init__ ( self, nif, nom, llinatges, direccio1, direccio2, poblacio, codipostal, telefon, mobil, email, notes, pais ) :
        """

        @param nif: nif del client
        @param nom: nom del client
        @param llinatges: llinatges del client
        @param direccio1: primera linia de la direccio postal del client
        @param direccio2: segona linia de la direccio postal del client

        """
        self._nif = nif
        self._nom = nom
        self._llinatges = llinatges
        self._direccio1 = direccio1
        self._direccio2 = direccio2
        self._poblacio = poblacio
        self._codipostal  = codipostal
        self._telefon = telefon
        self._mobil = mobil
        self._email = email
        self._notes = notes
        self._pais = pais
        self._arreglos = None
        self._factures = None


		nif = property(getNif, None, None, "Nif's Docstring")
	
		nom = property(getNom, setNom, delNom, "Nom's Docstring")
	
		llinatges = property(getLlinatges, setLlinatges, delLlinatges, "Llinatges's Docstring")
	
		direccio1 = property(getDireccio1, setDireccio1, delDireccio1, "Direccio1's Docstring")
	
		direccio2 = property(getDireccio2, setDireccio2, delDireccio2, "Direccio2's Docstring")
	
		poblacio = property(getPoblacio, setPoblacio, delPoblacio, "Poblacio's Docstring")
	
		codipostal = property(getCodipostal, setCodipostal, delCodipostal, "Codipostal's Docstring")
	
		telefon = property(getTelefon, setTelefon, delTelefon, "Telefon's Docstring")
	
		mobil = property(getMobil, setMobil, delMobil, "Mobil's Docstring")
	
		email = property(getEmail, setEmail, delEmail, "Email's Docstring")
	
		notes = property(getNotes, setNotes, delNotes, "Notes's Docstring")
	
		pais = property(getPais, setPais, delPais, "Pais's Docstring")



	def getFactura (self, NumFactura):
		"""
			Retorna la factura donada per numfactura
		"""
		try:
			return self._factures [NumFactura]
		except:
			raise FacturaNoExisteix



	def addFactura (self, Factura) :
		"""
			Afegeix una factura.
			Si ja existeix salta l'excepcio FacturaExisteix
		"""		
		if self._factures.has_key(Factura.NumFactura):
			raise FacturaExisteix()
		else:
			self._factures[Factura.NumFactura] =  Factura 
			Factura.Grava()


	def setFactura (self, Factura) :
		"""
			Actualitza una factura
			Si no existeix salta l'excepcio FacturaNoExisteix
		"""
		try:
			self._factures[Factura.NumFactura] = Factura
			Factura.Grava()			
		except:
			raise FacturaNoExisteix()

	def delFactura (self, Factura) :
		"""
			Borra una factura
			Si no existeix salta l'excepcio FacturaNoExisteix
		"""
		try:
			self._factures[Factura.NumFactura] = Factura
			Factura.Borra()			
		except:
			raise FacturaNoExisteix()



	def getArreglo (self, NumArreglo):
		"""
		Retorna la factura donada per numfactura
		"""
		try:
			return self._arreglos [NumArreglo]
		except:
			raise ArregloNoExisteix()

     def setArreglo (self, Arreglo) :  
		"""
			Actualitza un arreglo
			Si no existeix salta l'excepcio ArregloNoExisteix
		"""
		try:
			self._arreglos[Arreglo.NumArreglo] = Arreglo
			Arreglo.Grava()			
		except:
			raise ArregloNoExisteix()


	def addArreglo (self, Arreglo) :
		"""
			Afegeix un Arreglo.
			Si ja existeix salta l'excepcio ArregloExisteix
		"""		
		if self._arreglos.has_key(Arreglo.NumArreglo):
			raise ArregloExisteix()
		else:
			self._arreglos[Arreglo.NumArreglo] =  Arreglo 
			Arreglo.Grava()


	def delArreglo (self, Arreglo) :
		"""
			Borra un Arreglo
			Si no existeix salta l'excepcio ArregloNoExisteix
		"""
		try:
			self._arreglos[Arreglo.NumArreglo] = Arreglo
			Arreglo.Borra()			
		except:
			raise ArregloNoExisteix()




